package vo

import (
	"boy-go/pkg/request"
	"boy-go/pkg/xtime"
	"time"
)

type SysOperLogModel struct {
	OperId        int64   `json:"operId" form:"operId"`               // 日志主键
	Title         *string `json:"title" form:"title"`                 // 模块标题
	BusinessType  *int64  `json:"businessType" form:"businessType"`   // 业务类型（0其它 1新增 2修改 3删除）
	Method        *string `json:"method" form:"method"`               // 方法名称
	RequestMethod *string `json:"requestMethod" form:"requestMethod"` // 请求方式
	OperatorType  *int64  `json:"operatorType" form:"operatorType"`   // 操作类别（0其它 1后台用户 2手机端用户）
	OperName      *string `json:"operName" form:"operName"`           // 操作人员
	DeptName      *string `json:"deptName" form:"deptName"`           // 部门名称
	OperUrl       *string `json:"operUrl" form:"operUrl"`             // 请求URL
	OperIp        *string `json:"operIp" form:"operIp"`               // 主机地址
	OperLocation  *string `json:"operLocation" form:"operLocation"`   // 操作地点
	OperParam     *string `json:"operParam" form:"operParam"`         // 请求参数
	JsonResult    *string `json:"jsonResult" form:"jsonResult"`       // 返回参数
	Status        *int64  `json:"status" form:"status"`               // 操作状态（0正常 1异常）
	ErrorMsg      *string `json:"errorMsg" form:"errorMsg"`           // 错误消息
	OperTime      *string `json:"operTime" form:"operTime"`           // 操作时间
	CostTime      *int64  `json:"costTime" form:"costTime"`           // 消耗时间
}

func (item *SysOperLogModel) OperAt(t *time.Time) {
	item.OperTime = xtime.TS.Format(t)
}

type QuerySysOperLogReq struct {
	request.ParamsRequest         // 分页参数
	OperId                *int64  `json:"operId" form:"operId"`               // 日志主键
	Title                 *string `json:"title" form:"title"`                 // 模块标题
	BusinessType          *int64  `json:"businessType" form:"businessType"`   // 业务类型（0其它 1新增 2修改 3删除）
	Method                *string `json:"method" form:"method"`               // 方法名称
	RequestMethod         *string `json:"requestMethod" form:"requestMethod"` // 请求方式
	OperatorType          *int64  `json:"operatorType" form:"operatorType"`   // 操作类别（0其它 1后台用户 2手机端用户）
	OperName              *string `json:"operName" form:"operName"`           // 操作人员
	DeptName              *string `json:"deptName" form:"deptName"`           // 部门名称
	OperUrl               *string `json:"operUrl" form:"operUrl"`             // 请求URL
	OperIp                *string `json:"operIp" form:"operIp"`               // 主机地址
	OperLocation          *string `json:"operLocation" form:"operLocation"`   // 操作地点
	Status                *int64  `json:"status" form:"status"`               // 操作状态（0正常 1异常）
	ErrorMsg              *string `json:"errorMsg" form:"errorMsg"`           // 错误消息
}
type ListSysOperLogRsp struct {
	List  []*SysOperLogModel
	Total int64
}

type AddSysOperLogReq struct {
	OperId        int64   `json:"operId" form:"operId"`               // 日志主键
	Title         *string `json:"title" form:"title"`                 // 模块标题
	BusinessType  *int64  `json:"businessType" form:"businessType"`   // 业务类型（0其它 1新增 2修改 3删除）
	Method        *string `json:"method" form:"method"`               // 方法名称
	RequestMethod *string `json:"requestMethod" form:"requestMethod"` // 请求方式
	OperatorType  *int64  `json:"operatorType" form:"operatorType"`   // 操作类别（0其它 1后台用户 2手机端用户）
	OperName      *string `json:"operName" form:"operName"`           // 操作人员
	DeptName      *string `json:"deptName" form:"deptName"`           // 部门名称
	OperUrl       *string `json:"operUrl" form:"operUrl"`             // 请求URL
	OperIp        *string `json:"operIp" form:"operIp"`               // 主机地址
	OperLocation  *string `json:"operLocation" form:"operLocation"`   // 操作地点
	OperParam     *string `json:"operParam" form:"operParam"`         // 请求参数
	JsonResult    *string `json:"jsonResult" form:"jsonResult"`       // 返回参数
	Status        *int64  `json:"status" form:"status"`               // 操作状态（0正常 1异常）
	ErrorMsg      *string `json:"errorMsg" form:"errorMsg"`           // 错误消息
	OperTime      *string `json:"operTime" form:"operTime"`           // 操作时间
	CostTime      *int64  `json:"costTime" form:"costTime"`           // 消耗时间
}
type AddSysOperLogRsp struct {
	OperId int64 `json:"operId" form:"operId"` // 日志主键
}

type EditSysOperLogReq struct {
	OperId        int64   `json:"operId" form:"operId"`               // 日志主键
	Title         *string `json:"title" form:"title"`                 // 模块标题
	BusinessType  *int64  `json:"businessType" form:"businessType"`   // 业务类型（0其它 1新增 2修改 3删除）
	Method        *string `json:"method" form:"method"`               // 方法名称
	RequestMethod *string `json:"requestMethod" form:"requestMethod"` // 请求方式
	OperatorType  *int64  `json:"operatorType" form:"operatorType"`   // 操作类别（0其它 1后台用户 2手机端用户）
	OperName      *string `json:"operName" form:"operName"`           // 操作人员
	DeptName      *string `json:"deptName" form:"deptName"`           // 部门名称
	OperUrl       *string `json:"operUrl" form:"operUrl"`             // 请求URL
	OperIp        *string `json:"operIp" form:"operIp"`               // 主机地址
	OperLocation  *string `json:"operLocation" form:"operLocation"`   // 操作地点
	OperParam     *string `json:"operParam" form:"operParam"`         // 请求参数
	JsonResult    *string `json:"jsonResult" form:"jsonResult"`       // 返回参数
	Status        *int64  `json:"status" form:"status"`               // 操作状态（0正常 1异常）
	ErrorMsg      *string `json:"errorMsg" form:"errorMsg"`           // 错误消息
	OperTime      *string `json:"operTime" form:"operTime"`           // 操作时间
	CostTime      *int64  `json:"costTime" form:"costTime"`           // 消耗时间
}
type EditSysOperLogRsp struct {
	OperId int64 `json:"operId" form:"operId"` // 日志主键
}
